package com.example.OnlineStorage.enums;

import lombok.Getter;

@Getter
public enum Permissions {
	/**
	 * 对共享文件夹的插入权限。
	 * 二进制位：0b1，表示该权限对应的二进制位为第1位。
	 */
	Share_files_Insert( 0b1L ),
	/**
	 * 对共享文件夹的查询权限。
	 * 二进制位：0b10，表示该权限对应的二进制位为第2位。
	 */
	Share_files_Select( 0b10L ),
	/**
	 * 对共享文件夹的更新权限。
	 * 二进制位：0b100，表示该权限对应的二进制位为第3位。
	 */
	Share_files_Update( 0b100L ),
	/**
	 * 对共享文件夹的删除权限。
	 * 二进制位：0b1000，表示该权限对应的二进制位为第4位。
	 */
	Share_files_Delete( 0b1000L );
	
	
	/**
	 * 权限的数值表示。
	 * 使用Long类型存储权限的二进制表示，便于权限的检查和操作。
	 */
	private final Long value;
	
	/**
	 * 构造函数，为每个权限赋值。
	 *
	 * @param value 权限的二进制数值表示。
	 */
	Permissions ( Long value ) {
		this.value = value;
	}
	
}
